ফাইল কপি করা (copyFile, copyDirectory)

Java Technologies - অ্যাপাচি কমন্স আইও (Apache Common IO) FileUtils ক্লাসের ব্যবহার |
127
127

Apache Commons IO লাইব্রেরি FileUtils ক্লাস সরবরাহ করে যা ফাইল ও ডিরেক্টরি সম্পর্কিত কার্যাবলী অনেক সহজ করে তোলে। এর মধ্যে অন্যতম গুরুত্বপূর্ণ কার্যাবলী হলো ফাইল কপি করা এবং ডিরেক্টরি কপি করাcopyFile() এবং copyDirectory() মেথডগুলি এই কার্যাবলী সম্পাদন করতে ব্যবহৃত হয়।

FileUtils.copyFile() এবং FileUtils.copyDirectory() মেথডগুলি ফাইল বা ডিরেক্টরি কপি করার জন্য খুবই কার্যকরী এবং সহজ ব্যবহারযোগ্য। এই মেথডগুলো IOException ছুঁড়ে ফেলে, তাই এগুলি ব্যবহারের সময় exception handling করা উচিত।

১. ফাইল কপি করা (copyFile)

copyFile() মেথডটি ব্যবহার করে আপনি একটি ফাইলকে এক স্থান থেকে অন্য স্থানে কপি করতে পারেন। এটি একটি ফাইলের সমস্ত কন্টেন্ট এবং মেটাডেটা কপি করে।

copyFile() এর ব্যবহার:

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class CopyFileExample {
    public static void main(String[] args) {
        try {
            File sourceFile = new File("source.txt");  // সোর্স ফাইল
            File destinationFile = new File("destination.txt");  // গন্তব্য ফাইল

            // ফাইল কপি করা
            FileUtils.copyFile(sourceFile, destinationFile);

            System.out.println("ফাইল কপি সফল!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.copyFile() মেথডটি ব্যবহার করা হয়েছে একটি ফাইল থেকে অন্য ফাইলে ডেটা কপি করার জন্য।

আউটপুট:

ফাইল কপি সফল!

২. ডিরেক্টরি কপি করা (copyDirectory)

copyDirectory() মেথডটি ব্যবহার করে আপনি একটি ডিরেক্টরি এবং তার মধ্যে থাকা সমস্ত ফাইল এবং সাবডিরেক্টরিগুলো কপি করতে পারেন। এটি রিকার্সিভলি (recursive) কাজ করে, অর্থাৎ ডিরেক্টরি এবং তার ভিতরের সমস্ত উপাদান কপি করবে।

copyDirectory() এর ব্যবহার:

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class CopyDirectoryExample {
    public static void main(String[] args) {
        try {
            File sourceDir = new File("sourceDir");  // সোর্স ডিরেক্টরি
            File destDir = new File("destinationDir");  // গন্তব্য ডিরেক্টরি

            // ডিরেক্টরি কপি করা
            FileUtils.copyDirectory(sourceDir, destDir);

            System.out.println("ডিরেক্টরি কপি সফল!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.copyDirectory() মেথডটি ব্যবহার করা হয়েছে একটি ডিরেক্টরি এবং তার ভিতরের সমস্ত ফাইল ও সাবডিরেক্টরি কপি করার জন্য।

আউটপুট:

ডিরেক্টরি কপি সফল!

৩. কপি করার সময় অতিরিক্ত ফিচার

FileUtils.copyFile() এবং FileUtils.copyDirectory() মেথডের কিছু অতিরিক্ত ফিচার রয়েছে, যেমন ফাইল কপি করার সময় overwrite করা, অথবা filtering করা (যেমন, শুধুমাত্র নির্দিষ্ট ফাইল কপি করা)।

উদাহরণ: ফাইল কপি করার সময় overwrite করা

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class CopyFileWithOverwriteExample {
    public static void main(String[] args) {
        try {
            File sourceFile = new File("source.txt");  // সোর্স ফাইল
            File destinationFile = new File("destination.txt");  // গন্তব্য ফাইল

            // ফাইল কপি করা, যদি গন্তব্য ফাইল আগে থেকেই থাকে তবে তার উপরে লেখা হবে
            FileUtils.copyFile(sourceFile, destinationFile);

            System.out.println("ফাইল কপি সফল, আগের ফাইলটি ওভাররাইট করা হয়েছে!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

উদাহরণ: ডিরেক্টরি কপি করার সময় ফাইল ফিল্টারিং

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.filefilter.WildcardFileFilter;

public class CopyDirectoryWithFilterExample {
    public static void main(String[] args) {
        try {
            File sourceDir = new File("sourceDir");  // সোর্স ডিরেক্টরি
            File destDir = new File("destinationDir");  // গন্তব্য ডিরেক্টরি

            // শুধু .txt ফাইল কপি করা
            FileUtils.copyDirectory(sourceDir, destDir, new WildcardFileFilter("*.txt"));

            System.out.println("ফাইল ফিল্টারিং সহ ডিরেক্টরি কপি সফল!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • WildcardFileFilter ব্যবহার করা হয়েছে যাতে শুধুমাত্র .txt এক্সটেনশন বিশিষ্ট ফাইলগুলো কপি করা হয়।

৪. এছাড়া কিছু গুরুত্বপূর্ণ ফিচার

  1. copyDirectoryToDirectory(): একটি ডিরেক্টরি অন্য একটি ডিরেক্টরির মধ্যে কপি করার জন্য ব্যবহৃত হয়।

    File sourceDir = new File("sourceDir");
    File destinationDir = new File("destinationDir");
    FileUtils.copyDirectoryToDirectory(sourceDir, destinationDir);
    
  2. copyFileToDirectory(): একটি ফাইল একটি ডিরেক্টরির মধ্যে কপি করার জন্য ব্যবহৃত হয়।

    File sourceFile = new File("source.txt");
    File destDir = new File("destinationDir");
    FileUtils.copyFileToDirectory(sourceFile, destDir);
    
  3. forceDelete(): এটি ফাইল বা ডিরেক্টরি ডিলিট করার জন্য ব্যবহৃত হয়, এমনকি যদি ফাইলটি readonly হয়।
  4. copyDirectoryWithFilter(): copyDirectory মেথডটি ফাইল ফিল্টার প্রয়োগ করার জন্য একটি ঐচ্ছিক আর্গুমেন্ট গ্রহণ করতে পারে।

সারাংশ

Apache Commons IO লাইব্রেরি ফাইল এবং ডিরেক্টরি কপি করার জন্য সহজ এবং কার্যকরী মেথড সরবরাহ করে। FileUtils.copyFile() এবং FileUtils.copyDirectory() মেথডগুলির মাধ্যমে আপনি সহজে একটি ফাইল বা ডিরেক্টরি কপি করতে পারেন। এগুলির সঙ্গে আরও অনেক শক্তিশালী ফিচার রয়েছে, যেমন ফাইল ফিল্টারিং, ফাইল ওভাররাইটিং এবং ডিরেক্টরি কপি করা, যা আপনার I/O operations কে আরও কার্যকরী এবং সহজ করে তোলে। Apache Commons IO লাইব্রেরি ব্যবহারের মাধ্যমে আপনি File I/O এবং Directory I/O সম্পর্কিত অনেক সাধারণ কাজ খুব সহজে সম্পন্ন করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion